1. Field of the Invention
The present invention relates to patented U.S. patent application Ser. No. 09/023,036 entitled "ORGANICWARE APPLICATIONS FOR COMPUTER SYSTEMS" and patented U.S. patent application Ser. No. 09/023,167 entitled "CRUCIBLE QUERY SYSTEM", all assigned to the assignee of the present invention, filed concurrently herewith, the teachings of which are incorporated herein by reference in their entirety.
2. Relevant Background
Computer pictures or images drawn on a computer screen are called computer graphics. Computer graphic systems store graphics internally in digital form. The picture is broken up into tiny picture elements or pixels. Thus, a computer picture or graphic is actually an aggregation of individual picture elements or pixels. Graphic processing for display of information is a critical problem for presenting information in an efficient, ergonomic manner.
Conventional computer graphic systems use image primitives known as images, bitmaps, or pixel maps to represent computer imagery as an aggregation of pixels. These primitives represent a two-dimensional array of pixel attributes and their respective digital values. Typically, such a primitive is expressed as a "struct" which is a data structure that contains a pointer to pixel data, a pixel size, scan line size, bounds, and optionally a reference to a color table. These primitives serve as a frame buffer and as a frame storage specification.
Current graphical display systems have a hardware component and a software component. The hardware component comprises a display such a cathode ray tube (CRT) and a display adapter that drives signals (e.g. RGB signals) to the display. A wide variety of displays are available that vary in size, resolution, color depth, and readability. Users choose a particular display to meet particular application criteria such as cost, size, and effectiveness. Although the present invention does not directly modify the hardware component of a graphic display system, it is important to note that an effective windowing and viewing system (i.e., the software component) should be readily adaptable to display information effectively and ergonomically on any of a wide variety of display devices. This is particularly true in distributed application and distributed data base applications in which users may wish to access the application or data base from any of a wide variety of display devices. Until now, it has been extremely complex to develop a distributed application that could efficiently service this wide variety of display devices.
Current windowing systems create a window for every running application that needs to communicate to a user through the graphical interface. A particular application may have more than one window in some instances. The user interface portion of the operating system (e.g., windows, OS/2, UNIX) may also generate windows directly to communicate through the graphical user interface. Within each window, a number of views are defined. Each view is directed towards a specific task being completed by the application. For example, a word processing application may have a main view that provides a representation of a document and the number of tools that can be used to edit the document. Another view might be a dialog box used to communicate information to a user. These views are established within the application and may overlap each other as needed.
It is known to enable views to change their appearance based on certain states of the application or machine. An active view, for example, may be colored differently than an inactive view which may appear dimmed. While these changes known in the prior art do convey information to the user, they do not effect the content or component objects that make up a view. Each view is filled with one or more component objects. These component graphical objects each comprise data or state information together with methods (i.e., executable instructions) that enable the data to be displayed in a desired format.
One of the most important aspects of a modern computing system is the interface between the human user and the machine. The earliest and most popular type of interface was text based. In these systems, the user communicated with the machine by typing text characters on a keyboard and the machine communicated with the user by displaying text characters on a display screen. Such interfaces are also referred to as command line interfaces. More recently, graphic user interfaces have become popular whereby the machine communicates with the user by displaying a combination of text and graphics on a display screen and the user communicates with the machine both by typing text commands and manipulating the displayed pictures with a pointing device such as a mouse.
A typical graphic user interface is called a window environment. Examples include Microsoft Windows, IBM OS/2 and X Windows running on a UNIX operating system. In a typical window environment, the graphic display portrayed on the display screen is arranged to resemble the surface of an electronic desktop and each application program running on the computer is represented as one or more electronic windows displayed in rectangular regions of the screen.
Each window region generally displays information that is generated by the associated application program. There may be several window regions simultaneously displayed on the desktop each representing information generated by a different application. An application presents information to the user through each window by drawing or painting images, a graphic and text within the window region. The user communicates with the application by pointing at objects in the window region with a cursor which is controlled by a pointing device and manipulating or moving the objects. The window regions may also be moved around on the display screen and changed in size and appearance so that the user can arrange the display in a convenient manner.
Each window region typically includes a number of graphical objects or components such as sizing boxes, buttons and scroll bars. These features represent user interface devices that the user can point at with a cursor to select and manipulate. When the devices are selected or manipulated, the underlying application program is informed via the graphic interface that the control has been manipulated by the user.
In general, the window environment is supported by or part of an operating system running on the computer. The operating system provides an interface to application (i.e., an application programmer's interface) that allows the application to pass messages to the operating system that enable the operating system to manipulate the display, and return messages from user I/O components such as a mouse or keyboard to the application. The application program interacts with the operating system to provide a higher level of functionality and perform a specific task. The application program typically makes use of the operating system functions by sending out a series of task commands or system calls.
The method of handling screen displays varies from computer to computer and can affect how a particular window or view is displayed from one computer system to another. Many windowing systems use a technique called "logical inches" to convert physical measurements to display area. This technique is an outgrowth of desktop publishing. A display is not capable of the resolution of paper. Hence, a display image is usually magnified as compared to the paper image that will be printed. While this is very effective for desktop publishing, it is an impediment when designing graphical interfaces that are not intended to be printed. Although windowing systems allow a user or application to change the logical inch to be equal to a real inch, this changes the magnification every feature of the graphical interface. With such a modification, the application may be able to specify a window with a specific dimension in real measurement units, but associated text in buttons and control will be altered so that it may become unreadable. Alternatively, the display units are arbitrary, having no predetermined or set relationship to a real unit of measure. This often results where the hardware graphics adapter or monitor allow scaling of which the operating system is not aware.